/*
* @Author: MR.Sun
* @Date: 2022/8/1 13:54
* @File: main.go
* @Desc:
 */
package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	fmt.Println("文件操作示例: ")
	file, err := os.Open("./main.go")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer file.Close()
	// 文件读取 这个只能读取128 个字节
	var tmp = make([]byte, 128)
	n, err := file.Read(tmp)
	if err == io.EOF {
		fmt.Println("文件读取完成")
		return
	}
	if err != nil {
		fmt.Printf("读取失败, err is %v\n", err)
		return
	}
	fmt.Printf("读取了%d 个字节", n)
	fmt.Println(string(tmp[:n]))

	// 循环读取 每次读取128 个字节，一直读到最后
	fmt.Println("循环读取的演示====>>>")
	var content []byte
	var temp = make([]byte, 128)
	for {
		n, err := file.Read(temp)
		if err == io.EOF {
			fmt.Println("读取完成")
			break
		}
		if err != nil {
			fmt.Printf("读取失败,%#v\n", err)
			return
		}
		content = append(content, tmp[:n]...)
	}
	fmt.Println(string(content))
}
